import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.*;
/**
 * Write a description of class bodyFin here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class input1 extends Tags
{
    private int originalX;
    private int originalY;
    private int anchoRenglon = 287;
    private int largoRenglon = 28;
    private HtmlWorld hW;
    
    private int x;  //variables que se ocupan para el calculo de lineas o coordenadas
    private int y;  // de las coincidencias de la hoja y del tag
    private int posEnHojaX; // posicion en x donde deberia de estar el tag 
    private int posEnHojaY; // posicion en y donde deberia de estar el tag ambos es respecto al nivel 
    private boolean flag = false; // Bandera que se utiliza para saber si coincidio la tag con la posicion que le orrespondia 
    private String nombre = "input1"; // El nombre que se guardara se comparara con la clase.tostring
    private boolean correcto = false;

    /**
     * Act - do whatever the bodyFin wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */  
    public void act() 
    {
        hW = (HtmlWorld)getWorld();
        coordenadasDependiendoNivel();
        if(Greenfoot.mouseDragged(this)) 
        {
            MouseInfo mouse = Greenfoot.getMouseInfo();
            setLocation(mouse.getX(), mouse.getY());             
        }
        
        if(Greenfoot.mouseDragEnded(this)) 
        {
            //checaria coordenadas con la linea de la hoja
            if(!correcto)
            {
                for(y = posEnHojaY; y <= posEnHojaY+largoRenglon; y++)
                    for(x = posEnHojaX; x <= posEnHojaX+anchoRenglon; x++)
                    {
                        if( this.getX() == x && this.getY() == y && flag == false) 
                        { 
                            addTag();
                            flag = true;
                            correcto = true;
                        }
                    }
            }
            else
            {
                reset();
            }
            if(!flag)
            {
                reset();
            }
        }        
    }    
    
    /**
     * Agregar el tag a la lista de tags de la hoja 
     */
    private void addTag() 
    {
        hW.meteTagsEnLista(nombre);
    }
    
    /**
     * Reset the bomb to its original location.
     */
    private void reset() 
    {
        if(correcto)
        {
            hW.sacaTagsEnLista(nombre);
        }
        flag = correcto = false;
        setLocation(originalX, originalY);
    }
    
    private void coordenadasDependiendoNivel()
    {
        switch(hW.dameNivel())
        {
            case 3:
                originalX = 700;
                originalY = 341;
                posEnHojaX = 274;
                posEnHojaY = 201;
            break;
            case 4:
                
            break;
            case 5:
                
            break;
        }
    }
}